package com.fywsy.fyweb.strategy;

import com.fywsy.fyweb.entity.SendItem;
import com.fywsy.fyweb.utils.RestTemplateUtil;
import org.springframework.stereotype.Component;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;

/**
 * 游戏后台实现类
 * 注解gameId对应数据库游戏id
 * 注解GongnengMethod对应数据库功能id
 */
@Component
@GameId(24)
public class WdLongtentGameStrategy extends BaseGameStrategy {
    public static final String URL = "http://111.170.174.229:81/gmss/gmcode.php";

    /**
     * 成品装备
     */
    public static final String CPURL = "http://111.170.174.229:81/gmss/cp/pay.php";

    /**
     * type: pay
     * qu: 1
     * gmcode: diyao88
     * username: 风云
     * payid: 金元宝
     * paynum: 123
     * @param item
     * @return
     */
    @GongnengMethod(2401)
    public String pay(SendItem item) {
        MultiValueMap<String,String> params = new LinkedMultiValueMap<>();
        params.add("gmcode", "diyao88");
        params.add("qu", "1");
        params.add("type", "pay");
        params.add("username", item.uid);

        params.add("payid", item.itemId);
        params.add("paynum", item.number);

        return RestTemplateUtil.sendPostFormAndGetJsonKey(URL, params, "msg");
    }

    /**
     * type: mail
     * qu: 1
     * gmcode: diyao88
     * username: 风云
     * mailid: 1
     * c5: 召唤令·上古神兽
     * c6: 2
     * cw1: 百年黑熊(宝宝)
     * @param item
     * @return
     */
    @GongnengMethod(2402)
    public String mail(SendItem item) {
        MultiValueMap<String,String> params = new LinkedMultiValueMap<>();
        params.add("gmcode", "diyao88");
        params.add("qu", "1");
        params.add("type", "mail");
        params.add("mailid", "1");
        params.add("username", item.uid);

        params.add("c5", item.itemId);
        params.add("c6", item.number);

        return RestTemplateUtil.sendPostFormAndGetJsonKey(URL, params, "msg");
    }



    /**
     * fb1: 金蛟剪        法宝名字
     * fb2: 1           法宝等级 最大24
     * fb3: 1           亲密度
     * fb4: 3           相性
     * fb5: 4,天眼       法宝技能?
     * fb6: 1           法宝技能等级 最大24
     * fb7: 1           1绑定,2非绑
     * @param item
     * item.itemId 应该附带
     * fb1-fb4-fb5
     * 法宝名字-法宝相性-法宝技能
     * @return
     */
    @GongnengMethod(2403)
    public String fabao(SendItem item) {
        MultiValueMap<String,String> params = new LinkedMultiValueMap<>();
        params.add("gmcode", "diyao88");
        params.add("qu", "1");
        params.add("type", "mail");
        params.add("mailid", "法宝");
        params.add("username", item.uid);

        if(!item.itemId.contains("-")) {
            return "格式错误,发送失败";
        }
        String[] items = item.itemId.split("-");
        if(items.length != 3) {
            return "格式错误,发送失败";
        }

        //"定海珠-1-1,颠倒乾坤"
        params.add("fb1", items[0]);
        params.add("fb2", item.number);
        params.add("fb3", "1");
        params.add("fb4", items[1]);
        params.add("fb5", items[2]);
        params.add("fb6", "1");
        params.add("fb7", "1");

        return RestTemplateUtil.sendPostFormAndGetJsonKey(URL, params, "msg");
    }


    /**
     * 黑水晶
     * sj1: 防御,def          属性
     * sj2: 2                等级
     * sj3: 10              部位
     * sj4: 3               数量
     * @param item
     * item.itemId=sj1-sj3
     * @return
     */
    @GongnengMethod(2404)
    public String heishuijin(SendItem item) {
        MultiValueMap<String,String> params = new LinkedMultiValueMap<>();
        params.add("gmcode", "diyao88");
        params.add("qu", "1");
        params.add("type", "mail");
        params.add("mailid", "超级黑水晶");
        params.add("username", item.uid);

        if(!item.itemId.contains("-")) {
            return "格式错误,发送失败";
        }
        String[] items = item.itemId.split("-");
        if(items.length != 2) {
            return "格式错误,发送失败";
        }

        params.add("sj1", items[0]);//伤害,power
        params.add("sj2", item.number);
        params.add("sj3", items[1]);
        params.add("sj4", "1");

        return RestTemplateUtil.sendPostFormAndGetJsonKey(URL, params, "msg");
    }

    @GongnengMethod(2405)
    public String pet(SendItem item) {
        MultiValueMap<String,String> params = new LinkedMultiValueMap<>();
        params.add("gmcode", "diyao88");
        params.add("qu", "1");
        params.add("type", "mail");
        params.add("mailid", "2");
        params.add("username", item.uid);

        params.add("cw1", item.itemId);
        params.add("cw3", item.number);

        return RestTemplateUtil.sendPostFormAndGetJsonKey(URL, params, "msg");
    }


    /**
     *
     * type: qkmail
     * qu: 1
     * gmcode: diyao88
     * username: 风云
     * @param item
     * @return
     */
    @GongnengMethod(2406)
    public String clearMail(SendItem item) {
        MultiValueMap<String,String> params = new LinkedMultiValueMap<>();
        params.add("gmcode", "diyao88");
        params.add("qu", "1");
        params.add("type", "qkmail");
        params.add("username", item.uid);
        String s = RestTemplateUtil.sendPostFormAndGetJsonKey(URL, params, "msg");
        return s + "请[设置]-[管理]-[登陆管理]-[返回登陆]";
    }

    /**
     * 成品装备
     * userName: 风云
     * equipmentType: phy
     * cdk: 881001
     * @param item
     * @return
     */
    @GongnengMethod(2407)
    public String cp(SendItem item) {
        MultiValueMap<String,String> params = new LinkedMultiValueMap<>();
        params.add("gmcode", "diyao88");
        params.add("userName", item.uid);
        if(!item.itemId.contains("-")) {
            return "格式错误,发送失败";
        }
        String[] items = item.itemId.split("-");
        if(items.length != 2) {
            return "格式错误,发送失败";
        }
        params.add("equipmentType", items[0]);
        params.add("cdk", items[1]);

        return RestTemplateUtil.sendPostFormAndGetJsonKey(CPURL, params, "message");
    }

//    @GongnengMethod(2408)
//    public String realPay() {
//
//    }

    public static void main(String[] args) {
        SendItem item = new SendItem();
        item.uid = "风云";
        item.number = "2";
        item.itemId = "定海珠-1-1,颠倒乾坤";

        String fabao = new WdLongtentGameStrategy().fabao(item);
        System.out.println(fabao);
    }
}

